home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Graphics / Utilities / Sparkle202 Folder / Docs / New in 2.02 next >
Text File  |  1994-04-11  |  11KB  |  185 lines

  1. What's new in 2.02?
  2. • Compiled with gBreakFailure switched off. Damn. Damn. Damn.
  3.  
  4. What's new in 2.01?
  5. • Implemented padding YUV macroblocks with a repeat of the last value of
  6.      each YUV triplet when macroblocks at the edge of a frame spill over 
  7.      the edge. The most common case of this is a 120 pixel high movie with a 
  8.      macroblock height of 128. In the past this spillover was filled randomly.
  9.      The result of this is that MPEGs created are about 15% smaller.
  10. • Some diddling with the code used by the IDCT algorithm gives a speed boost 
  11.     of about 5% to both playing and encoding MPEGs.
  12. • Fixed a serious bug that prevented you from playing an MPEG if you started 
  13.     playing    it then interrupted it. A nice byproduct of this is that I got 
  14.     jogging of MPEGs fully operational. You can now repeatedly view a section 
  15.     of the MPEG by hitting command-right-arrow then command-left-arrow to keep 
  16.     the MPEG moving forwards then backwards.
  17. • Altered the alert popped up when the Thread Manager is not present to make
  18.     it more palatable to corporate and institutional users.
  19. • Fixed the MPEG buffering which would give problematic results for very small
  20.     MPEGs (say three frames or less).
  21. • Finally went through all resources, marking them purgable or not and removing
  22.     the unnecessary ones.
  23. • Fixed the "PBBIBB" default frame set to make it correspond to the user view
  24.     of things, not my programmer's view.
  25. • Fixed a bug that prevented a temporary movie created by the movie controller 
  26.     handling an MPEG file from being destroyed.
  27. • Fixed two bugs in the Think Class Library dealing with the loading of dialogs 
  28.     then manipulating them without setting their memory blocks to non-purgable.
  29. • Fixed a long-standing bug in the MPEG player buffer-handling code that 
  30.     would cause the MPEG frame index to be incorrect if it was created while 
  31.     memory was short. This probably never caused problems except for very long
  32.     MPEGs.
  33. • When converting a QT movie into a different movie form, the dialog that comes
  34.     up asking you for compression options will have the frame rate and key
  35.     frame rate set at what the original movie used, sparing you from having to
  36.     guess. I will eventually have this working across all file conversions, 
  37.     not just movie-->movie.
  38. • The Think C 6 compiler contains a bug when performing code-motion optimization 
  39.     on complex loops. If you run through the assembly it produces in this case,
  40.     it performs some very nifty register coloring and creating induction 
  41.     variables for the loop. It then leaves out one crucial instruction to 
  42.     update one of the induction variables each pass through the loop and so 
  43.     the code is garbage. 
  44.     As far as I can tell, this only affects one function in my code and I have
  45.     used a #pragma there to prevent it happening, but the fact that bugs like
  46.     this exist in the compiler is a little worrying.
  47. • Revised all memory allocation so that it is more likely to not to use up all
  48.     memory reserves and leave nothing for toolbox.
  49. • Found an especially nasty bug involving grabbing frames from a QT movie 
  50.     which, when memory ran low, would leave the system GrafPort/GDevice 
  51.     environment in an inconsistent state.
  52. • Revised all uses of GWorld to use tempMem, but fallback to local heap if 
  53.     tempMem is unavailable.
  54. • Altered the strings used to popup error messages at startup if QuickTime 
  55.     is not available. These got mixed up when I moved code around.
  56. • The code to build the MPEG index when an MPEG is opened would run out of space
  57.     when a very large MPEG was opened---one of a thousand frames or more. Now 
  58.     memory is allocated for this a little more flexibly.
  59. • Fixed a bug I inserted when I changed from Sparkle 1.6 to 1.7. I rewrote the
  60.     Berkeley motion vector code to speed it up and in the process made one 
  61.     little typo, shifting a variable right by 1 not 2. The effect of this, in 
  62.     Sparkles 1.7 and 2.0 was that, under very rare occasions, blocks of color 
  63.     would appear a few pixels off from where they should be. The only place I 
  64.     ever saw this was three or four frames of the MPEG sales110.mpg.
  65.     This is not related to a separate problem. 
  66.     The motion estimation code in the MPEG encoder (at present the Berkeley code
  67.     with practially no changes) is not perfect. It sometimes creates 
  68.     blocks that appear to be wildly off from where they should be (by quite a few
  69.     pixels). This is not very obvious in real life, but is very obvious in animation.
  70.     This is largely a quantization artifact---it goes away if you lower the 
  71.     quantizations. But obviosly you don't want to do that always, just where 
  72.     necessary, so you really want a smarter quantizer that is adaptive. 
  73.     I'll work on issues like this as soon as I can.
  74. • When converting a movie with sound to MPEG or QT, occasionally pops of sound could 
  75.     be heard. This is fixed.
  76. • When converting movies with very low keyframe rates (say 20 or more dependent 
  77.     frames per keyframe) occasionally the display of the movie would get confused 
  78.     and appear to alternate between two different frames. This is fixed.
  79. • The TCL does a very naughty thing in dealing with memory shortages by calling 
  80.     Failure() which means traps that fail memory requests are left in an 
  81.     inconsistent state. I changed this behavior to something more friendly.
  82.  
  83. What's new in 2.0?
  84. • The structure of the code has been completely altered to be based on 
  85.     threads. This makes it much easier for me to add new features to the code 
  86.     while having it retain MultiFinder friendliness.
  87. • Now opens and plays QT movies.
  88. • Now can create MPEG files. General conversion from 
  89.      {QT or MPEG}--->{QT or MPEG} is possible.
  90. • Many minor changes to the way files are opened, named and such.
  91. • Makes minor use of the speech manager if installed.
  92. • You can now play MPEGs backwards.
  93.  
  94. What's new in 1.71?
  95. • The progress bar now updates itself properly at the very end of saving 
  96.     each frame to Quicktime. It also draws itself better on b/w screens.
  97. • More of the default QT movie player keystrokes now work.
  98. • The app notes if an MPEG file has many errors and if so warns you that 
  99.     it has probably been transferred to the mac incorrectly.
  100. • I have incorporated a workaround to make Sparkle work with the QT VM 
  101.     extension. However I do not recommend you use the two together. If you do 
  102.     use QT VM you will find Sparkle's memory usage a little less efficient 
  103.     than without using QT VM. This is because of the way QT VM works.
  104. • Fixed a bug that caused unusually sized MPEGs to display as distorted.
  105. • Sparkle should now cope a little better with low memory situations.
  106. • Added a small tweak to improve drawing on 16bit screens under low 
  107.     memory conditions.
  108. • Uses the most recently released version on the floating windoid.
  109. • I have learned of an app that will convert QT to MPEG on the mac. It's 
  110.     not the easiest thing to use and I recommend this only for people 
  111.     who really need this, not for people who just want to play around.
  112.     See the README file for details.
  113.  
  114. What's new in 1.7?
  115. • Opening files is much faster.
  116. • Fixed the size of the checkboxes in the Open File dialog to the correct 
  117.     size for all those millions of people who use Chicago as their system 
  118.     font cause they have no sense of aesthetics. Oops.
  119. • Now when Sparkle changes the file-type of an file, the Finder will update 
  120.     the icon immediately, instead of forcing you to open and close the 
  121.     folder to see a new icon. Thanks to Jamie McCarthy for telling me how 
  122.     to do this.
  123. • Added an "About Sparkle" dialog box to quieten the constant stream of 
  124.     complaints about this.
  125. • Changed the way progress is reported. I think the new scheme feels 
  126.     rather more elegant. (If you have a fast machine and only use small 
  127.     MPEGs, you may not notice this change much.)
  128. • Adde random access. You can now use the step backward stepper, or 
  129.     simply click in movie controller where you want to go. All standard 
  130.     movie controller clicks and keystrokes are supported.
  131. • Restructured the internal code vastly. This is what took most of the 
  132.     time and while it doesn't directly help you users, it gives me
  133.      a framework that's much easier to build on. For example it should be 
  134.      trivial to add Apple Event support when I get round to that.
  135. • Three or four minor bugs were squelched, mostly involving Sparkle crashing
  136.      when it encountered MPEGs with invalid data in them.
  137. • Now quits gracefully when started on a 68000 mac like a Classic, rather 
  138.     than crashing. I'm sure    lots of people care about this.
  139. • Added better multi-tasking support. This takes two forms. 
  140.     One is that the length of the timeslices Sparkle uses before giving up 
  141.     the CPU are now absolute times.  Before they were numbers that worked 
  142.     well for my SE/30, but probably not optimally for slower or faster 
  143.     machines.
  144.     The second is that you can now context switch out of Sparkle while it 
  145.     is doing slow QT conversions (especially converting to Compact Video).
  146.     The way I have implemented this is not wonderful, but the best I can 
  147.     do given the present way the code is structured. The next version 
  148.     will use the Thread Manager and will do this rather better.
  149.     This second form of timeslicing is done through the 
  150.     SetSequenceProgressProc() call which is new in QT1.6 and which is why 
  151.     I now require use of QT1.6. Also QT does not yield the CPU very often,
  152.     and (as far as I know) there is no way to make it yield more often.
  153.     So while your machine is no longer completely frozen as it does its
  154.     conversion, it's still not too pleasant to use for typing. I can't do 
  155.     much about this---complain to Apple and tell them to change this part of 
  156.     QT, or better yet the whole OS.
  157.  
  158. What's new in 1.6?
  159. • I became tired of continually having to explain to people about mac 
  160.     file types, so I wrote a file filter function for the Open File dialog 
  161.     box which displays ALL files with a .mpg suffix. This should make use a 
  162.     lot easier for novices.
  163. • Fixed a bug that involved writing to NULL.
  164. • Fixed a bug that prevented IBP type MPEGs from rewinding when they 
  165.     reached the end and the play button was hit twice.
  166.  
  167. What's new in 1.5.2?
  168. • I was disposing of a handle twice (specifically I was disposing of a 
  169.     pixmap and then its colortable, not realizing that DisposPixMap took 
  170.     care of the colortable for me.) Thanks to Dan Sears for pointing this out.
  171.     I never noticed a problem due to this bug, but it's probably good to 
  172.     have killed it.
  173.  
  174. Whats new in 1.5.1?
  175. • One part of my speed optimizing code was not being initialized properly. 
  176.     This caused a very specific type of MPEG file to show parts of its first 
  177.     frame as greenish blobs. Now fixed.
  178. • The code to detect errors in a corrupted MPEG file has been made even 
  179.     more robust. Substantially better recovery from such errors, by 
  180.     rebuilding the lost parts of a frame from the previous frame, has been 
  181.     introduced. Thanks to a wonderfully corrupt MPEG file I pulled off 
  182.     usenet with about 15 misc errors in it for pointing out new and 
  183.     ingenious ways to fail.
  184. • New icons, courtesy of Richard Lim in Britain. I hope you like them.
  185.     You will have to rebuild the desktop to see them.